package edu.sdjzu.exam.dto;

import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class GradeExportDTO {
    
    /**
     * 成绩导出数据
     */
    @Data
    public static class GradeExportData {
        private String studentId;           // 学号
        private String studentName;         // 姓名
        private String examTitle;           // 考试名称
        private BigDecimal totalScore;      // 总分
        private BigDecimal maxScore;        // 满分
        private BigDecimal percentage;      // 百分比
        private String gradeStatus;         // 状态
        private LocalDateTime gradedAt;     // 批改时间
        private String gradedByName;        // 批改教师
        private String rank;                // 排名
    }
    
    /**
     * 成绩统计信息
     */
    @Data
    public static class GradeStatistics {
        private int totalStudents;          // 总人数
        private int completedStudents;      // 已完成人数
        private BigDecimal avgScore;        // 平均分
        private BigDecimal maxScore;        // 最高分
        private BigDecimal minScore;        // 最低分
        private BigDecimal passRate;        // 及格率
        private BigDecimal excellentRate;   // 优秀率
    }
    
    /**
     * 考试成绩报告
     */
    @Data
    public static class ExamGradeReport {
        private Long examId;
        private String examTitle;
        private LocalDateTime examDate;
        private GradeStatistics statistics;
        private List<GradeExportData> grades;
    }
}